Yes mefys mod includes mapfixes along with undermap detection. Its not just for FT, includes lots of fixes to round endings,bombs etc.
The cheat police fix i think map specific , so in order to make it kick the player, you will have to edit each map.scr.
For example ( obj/obj_team4)
In each map.scr you will find something like this relatively close to the top
Code:
/////////////////////
// ADD DEATH BOXES //
/////////////////////
thread _trigSet "trig_touch" 0 "kick" -4000 -6000 0.13 3000 8000 0.14
thread _trigSet "trig_touch" 0 "kill" 117 2740 144 275 2740 150
There may be more then just these 2. Anyway want you want to do is add/or change the action of what the trigger does, in this case its kill. Change it to '
kick'
Thats half way , now we have to add what the 'kick' does, since it doesnt already have an option to kick,we will make one.
Scoll down to the _trigAction: thread and find the switch command which has the list of commands.
Code:
switch ( self.ham_action )
{
case "hurt1": local.player hurt 1 ; break
case "hurt5": local.player hurt 5 ; break
case "hurt10": local.player hurt 10 ; break
case "hurt25": local.player hurt 25 ; break
case "hurt50": local.player hurt 50 ; break
case "die": local.player hurt 10000 ; break
case "kill": local.player kill ; break
case "respawn": local.player respawn ; break
case "weapnext":local.player weapnext ; break
case "weapdrop":local.player weapdrop ; break
case "holster": local.player safeholster 1 ; break
case "stand": local.player modheight stand ; break
case "duck": local.player modheight duck ; break
case "ciact": thread outofbounds local.player ; break
case "warn": thread sendwarning local.player ; break
case "kick": thread kickplayer local.player ; break
default: local.player stufftext self.ham_action ; break
}
Now we want to add another case called 'kick' leading to another thread, just like the warn and ciact cases did. So add
case "kick": thread kickplayer local.player ; break
Next add the following thread under the others
Code:
kickplayer local.player:
// Gets clientnum
local.clientnum = getclientnum local.player
//Kicks them
stuffsrv ("clientkickr " + local.clientnum + " Going under the Map")
end
That should do it, now you will have to do for
EVERY map you use, in each of the corresponding script files for the maps, ie maps/dm/mohdm6.scr etc
Or if you were to use Mefys mod, you might be already without knowing it.
Mefys undermap detection is located at global/libmef/util.scr::under_map_thread
And good thing about that is you only have to add something to it
ONCE,
Find the under_thread, look for
Code:
if (waitthread is_under_map local.player local.botz local.topz)
{
local.player takedamage
local.player hurt 1000
local.player iprint "You were killed for going under the map."
}
And replace with
Code:
if (waitthread is_under_map local.player local.botz local.topz)
{
// Gets clientnum
local.clientnum = getclientnum local.player
//Kicks them
stuffsrv ("clientkickr " + local.clientnum + " Going under the Map")
}